The Internet is quickly becoming the most prevalent method of telecommunications in the world. In the last quarter of 1995, it is estimated that over 20 million users accessed the Internet although few people understand what the Internet is. The Internet is a name given to the massive connection of different TCP/IP networks. These networks contain host computers, workstations, and mini-computers and are connected by routers, telephone lines, coax cables and many other pieces of equipment. The Internet consists of a three level hierarchy which allows the computers or workstations to connect. The hierarchy consists of backbone networks such as ARPAnet, NSFNet and MILNET, mid-level networks such as company networks and stub networks providing a lower level of granularity and addressability to the mid-level networks.
With the increase in the popularity of the Internet also comes a decrease in the programming expertise of the average user of the Internet. It used to be that the Internet was primarily used by university scholars who had expertise in the area of computer programming or members of the military with special training. As the network communications age continues to evolve, a significant number of network providers have started providing access to the internet for the average user. For a monthly fee, and sometimes a per minute access rate, you can gain access to the Internet through America On-Line, Prodigy, CompuServe or many others. This has allowed virtually every home that has a telephone and a computer access to the Internet. Children are using the Internet to access on-line encyclopedias for school research, parents are using the Internet to make airline reservations, order merchandise, get up-to-date news and monitor the stock market. This change in the average user has uncovered a need to provide an intelligent interface which will allow users to transfer files. The interface must not require any information from the user concerning the contents or origin of the file to be transferred. It should be a `point-and-click` interface that will reliably transfer any file from wherever it is located to the user's local machine.
The base protocol used to build the Internet is TCP/IP (Transmission Control Protocol/Internet Protocol). File transfer is traditionally done using FTP (File Transfer Protocol) which is defined in the Request For Comment document RFC 959 of the IETF ("Internet Engineering Task Force"). This protocol describes both the client and the server architecture which allows file transfer between two computers.
While there are several data formats defined by FTP, two are commonly used to transfer almost all data. The binary format defines data that is to be transferred exactly as it appears on the sending computer without any alteration. The ASCII format is used to transfer data that is typically known as a `text file` and contains data in a human readable form. Throughout the present invention, references to ASCII or EBCDIC depict data that is in a human readable TEXT format. Failure to transfer the data using the correct format will render the data useless to the receiver of the data. The format is indicated by sending a command to the FTP server prior to the initialization of data transfer.
There is no support in the FTP protocol, nor is there a standard naming convention, that may be used to determine the correct data format of a file being transferred by FTP. The burden of this determination falls on the user of a computer program that uses the FTP protocol. This can be extremely difficult, especially for novice users who don't understand the differences between the file modes and how the data is actually stored. Some GUI (Graphical User Interface) clients attempt to maintain a mapping of the mode based on the file extension, but this is unreliable and requires that the user know enough to use the proper file extensions. An assumption which may be unreasonable where novice users are concerned.
Additional problems arise with this technique in that some files have no extensions, there is no concrete standard convention for extensions, the user is responsible for adding and deleting items from the list for the identified file extensions, and the method only works if all of the rules are followed.